Regardons le tableau suivant "Products" ("Produits") :
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
Supposons que la colonne « UnitsOnOrder » soit facultative et puisse contenir la valeur NULL.
Considérez l'instruction suivante SELECT :
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products
Dans l'exemple ci-dessus, si l'une des valeurs "UnitsOnOrder" est égale à NULL, le résultat sera NULL.
La fonction MySQL IFNULL() permet de renvoyer une valeur alternative si l'expression est égale à NULL :
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products
ou on peut utiliser la fonction COALESCE(), par exemple :
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
La fonction SQL Server ISNULL() permet de renvoyer une valeur alternative si l'expression a la valeur NULL :
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
ou on peut utiliser la fonction COALESCE(), par exemple :
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
La fonction MS Access IsNull() renvoie TRUE (-1) si l'expression est nulle, sinon FALSE (0) :
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products
La fonction Oracle NVL() obtient le même résultat :
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products
ou on peut utiliser la fonction COALESCE(), par exemple :
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products